这些很实用的Pandas技巧,你都会了吗? | 您所在的位置:网站首页 › 遍历 dataframe › 这些很实用的Pandas技巧,你都会了吗? |
作者介绍 莲石东路@乌森 心之所向,无界成长。从底层架构到应用实战,聊聊炼数成金背后的故事。 持续更新数据治理、数据科学、数据可视化、空间计算系列文章。 使用Python做数据分析,必然要提及的一个工具就是pandas,它是一个非常强大的数据分析工具包,集数据处理、分析、可视化于一身的工具,非常强大好用。在讲下一篇的Ploty.js之前我们先总结一下Pandas的使用。 01 Pandas数据结构:一维数组(Series) 1.1 创建Series数组 Series是一个一维的数据类型,其中每一个元素都有一个标签。类似于Numpy中元素带标签的数组。其中,标签可以是数字或者字符串。 1.2 Series数组的索引 Series对象提供了几种不同的索引方法。 (1) 枚举索引 枚举索引按照index值进行索引。index值默认使用下标,下标总是从0开始的,而且索引值总是数字。也可以用关键字为index赋值,关键字既可以是数字,也可以是字符串等。 (2)布尔索引 切片索引使用的是下标,不会受到index的影响。 (3)切片索引 02 Pandas数据结构:数据表(Dataframe) Pandas提供了一种名为Dataframe的二维表结构。可以把DataFrame想象成一个电子表格,它由行名(index)、列名(columns)和数据(values)组成。 2.1 创建Dataframe数据表 (1)从字典创建 (2)从Series创建 (3)从二维数组直接创建 由二维数组直接创建DataFrame,得到一样形状的结果数据,如果不指定index和columns,两者均返回默认数字格式。 2.2 Dataframe数据表的遍历 2.3 Dataframe数据表的索引 (1)枚举索引 (2)布尔索引 (3)切片索引 (4)loc和iloc索引 2.4 多索引Dataframe数据表 03 Pandas数据 I/O 了解更多 04 Series和DataFrame的基本操作 4.1 Series和DataFrame添加删除元素 (1)Series添加删除元素 (2)DataFrame添加删除元素 4.2 Series和DataFrame数据排重 4.3 Series和DataFrame数据替换和映射 (1)数据替换 (2)数据映射 map()函数就是一个数据到一个数据的映射关系,中间没有对数据的增删改;map(function,list)就是将list里面的数据取出来然后用于function。 4.4 DataFrame行列变换 (1)使用 numpy 实现转置 (2)利用 pandas 多级索引实现转置 stack() 会将数据的列”旋转”为行,新的行索引比原来的行索引低了一个级别(0的级别最高)。unstack() 将数据的行”旋转”为列,默认旋转的是级别最低的索引。 4.5 DataFrame合并与拆分 (1)堆叠 concat()能够实现轴向数据集的堆叠。 (2)连接 merge()可根据一个或者多个键将不同的DataFrame连接在一起,类似于SQL数据库中的join操作。 (3)拆分 4.6 DataFrame排序 4.7 DataFrame分组 05 Pandas与数据统计 5.1 Series的统计 5.1 DataFrame的统计 06 小技巧:Pandas提速攻略 6.1 标准循环—101.6秒 DataFrame是具有行和列的Pandas对象。如果使用循环,需要遍历整个对象。Python不能利用任何内置函数,而且速度很慢。 6.2 使用Pandas内置函数:iterrows()—6.8秒,快15倍 在第一个示例中,循环遍历了整个DataFrame。iterrows()为每一行返回一个Series,它以索引对的形式遍历DataFrame,以Series的形式遍历感兴趣的列。这使得它比标准循环更快。 6.3 apply()方法—1.7秒,快59.7倍 apply 本身并不快,但与DataFrame结合使用时,它具有优势。 6.3 Pandas向量化—0.04秒,快2540倍 可以利用向量化的优点来创建非常快的代码。 |
CopyRight 2018-2019 实验室设备网 版权所有 |